import * as constants from '@/common/constants';
import {BoardName} from '@/common/boards/BoardName';
import {DEFAULT_EXPANSIONS} from '@/common/cards/GameModule';
import {RandomMAOptionType} from '@/common/ma/RandomMAOptionType';
import {CreateGameModel} from './CreateGameModel';

export function defaultCreateGameModel(): CreateGameModel {
  return {
    firstIndex: 1,
    playersCount: 1,
    players: [
      {name: '', color: 'red', beginner: false, handicap: 0, first: false},
      {name: '', color: 'green', beginner: false, handicap: 0, first: false},
      {name: '', color: 'yellow', beginner: false, handicap: 0, first: false},
      {name: '', color: 'blue', beginner: false, handicap: 0, first: false},
      {name: '', color: 'black', beginner: false, handicap: 0, first: false},
      {name: '', color: 'purple', beginner: false, handicap: 0, first: false},
      {name: '', color: 'orange', beginner: false, handicap: 0, first: false},
      {name: '', color: 'pink', beginner: false, handicap: 0, first: false},
    ],
    expansions: {...DEFAULT_EXPANSIONS},
    draftVariant: true,
    initialDraft: false,
    randomMA: RandomMAOptionType.NONE,
    modularMA: false,
    randomFirstPlayer: true,
    showOtherPlayersVP: false,
    // beginnerOption: false,
    showColoniesList: false,
    showCorporationList: false,
    showPreludesList: false,
    showBannedCards: false,
    showIncludedCards: false,
    customColonies: [],
    customCorporations: [],
    customPreludes: [],
    bannedCards: [],
    includedCards: [],
    board: BoardName.THARSIS,
    seed: Math.random(),
    seededGame: false,
    solarPhaseOption: false,
    shuffleMapOption: false,
    aresExtremeVariant: false,
    politicalAgendasExtension: 'Standard',
    undoOption: false,
    showTimers: true,
    fastModeOption: false,
    removeNegativeGlobalEventsOption: false,
    includeFanMA: false,
    startingCorporations: 2,
    soloTR: false,
    clonedGameId: undefined,
    allOfficialExpansions: false,
    requiresVenusTrackCompletion: false,
    requiresMoonTrackCompletion: false,
    moonStandardProjectVariant: false,
    moonStandardProjectVariant1: false,
    altVenusBoard: false,
    escapeVelocityMode: false,
    escapeVelocityThreshold: constants.DEFAULT_ESCAPE_VELOCITY_THRESHOLD,
    escapeVelocityBonusSeconds: constants.DEFAULT_ESCAPE_VELOCITY_BONUS_SECONDS,
    escapeVelocityPeriod: constants.DEFAULT_ESCAPE_VELOCITY_PERIOD,
    escapeVelocityPenalty: constants.DEFAULT_ESCAPE_VELOCITY_PENALTY,
    twoCorpsVariant: false,
    customCeos: [],
    startingCeos: 3,
    startingPreludes: 4,
    preludeDraftVariant: undefined,
    ceosDraftVariant: undefined,
  };
}
